<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>trngpsx: Overview</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">trngpsx
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group___overview.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Overview</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga88c45d9fcea045da2a83fac3a839a976"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga88c45d9fcea045da2a83fac3a839a976">XTRNGPSX_RESEED_TIMEOUT</a>&#160;&#160;&#160;1500000U</td></tr>
<tr class="memdesc:ga88c45d9fcea045da2a83fac3a839a976"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reseed timeout in micro-seconds.  <a href="#ga88c45d9fcea045da2a83fac3a839a976">More...</a><br/></td></tr>
<tr class="separator:ga88c45d9fcea045da2a83fac3a839a976"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6620c2ebd55840666179003a283acea"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaf6620c2ebd55840666179003a283acea">XTRNGPSX_GENERATE_TIMEOUT</a>&#160;&#160;&#160;1500000U</td></tr>
<tr class="memdesc:gaf6620c2ebd55840666179003a283acea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate timeout in micro-seconds.  <a href="#gaf6620c2ebd55840666179003a283acea">More...</a><br/></td></tr>
<tr class="separator:gaf6620c2ebd55840666179003a283acea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ef3e8b4f65633065b5de8de9f7429b4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga9ef3e8b4f65633065b5de8de9f7429b4">XTRNGPSX_WORD_LEN_IN_BYTES</a>&#160;&#160;&#160;4U</td></tr>
<tr class="memdesc:ga9ef3e8b4f65633065b5de8de9f7429b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Word length in bytes.  <a href="#ga9ef3e8b4f65633065b5de8de9f7429b4">More...</a><br/></td></tr>
<tr class="separator:ga9ef3e8b4f65633065b5de8de9f7429b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6192793c73f6cbf4a3635835507d28c4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga6192793c73f6cbf4a3635835507d28c4">XTRNGPSX_BYTE_LEN_IN_BITS</a>&#160;&#160;&#160;8U</td></tr>
<tr class="memdesc:ga6192793c73f6cbf4a3635835507d28c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Byte length in bits.  <a href="#ga6192793c73f6cbf4a3635835507d28c4">More...</a><br/></td></tr>
<tr class="separator:ga6192793c73f6cbf4a3635835507d28c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebafd9bdd9fd17cc76f7d644f2661b4c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaebafd9bdd9fd17cc76f7d644f2661b4c">XTRNGPSX_BLOCK_LEN_IN_BYTES</a>&#160;&#160;&#160;16U</td></tr>
<tr class="memdesc:gaebafd9bdd9fd17cc76f7d644f2661b4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">TRNG block length length in bytes.  <a href="#gaebafd9bdd9fd17cc76f7d644f2661b4c">More...</a><br/></td></tr>
<tr class="separator:gaebafd9bdd9fd17cc76f7d644f2661b4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab156d67eb4a798f294dc6ddebe8ab53b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gab156d67eb4a798f294dc6ddebe8ab53b">XTRNGPSX_MIN_SEEDLIFE</a>&#160;&#160;&#160;1U</td></tr>
<tr class="memdesc:gab156d67eb4a798f294dc6ddebe8ab53b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum seed life.  <a href="#gab156d67eb4a798f294dc6ddebe8ab53b">More...</a><br/></td></tr>
<tr class="separator:gab156d67eb4a798f294dc6ddebe8ab53b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga369bd60024827c90f5863cb1e82baa59"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga369bd60024827c90f5863cb1e82baa59">XTRNGPSX_MAX_SEEDLIFE</a>&#160;&#160;&#160;0x80000</td></tr>
<tr class="memdesc:ga369bd60024827c90f5863cb1e82baa59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum seed life 2^19.  <a href="#ga369bd60024827c90f5863cb1e82baa59">More...</a><br/></td></tr>
<tr class="separator:ga369bd60024827c90f5863cb1e82baa59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga613878c668ba11cca5bfffd493caccba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga613878c668ba11cca5bfffd493caccba">XTRNGPSX_SEC_STRENGTH_IN_BURSTS</a>&#160;&#160;&#160;2U</td></tr>
<tr class="memdesc:ga613878c668ba11cca5bfffd493caccba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Security strength in 128-bit bursts.  <a href="#ga613878c668ba11cca5bfffd493caccba">More...</a><br/></td></tr>
<tr class="separator:ga613878c668ba11cca5bfffd493caccba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7f5bd1585dc56e50d4f0c5bef8db42a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaf7f5bd1585dc56e50d4f0c5bef8db42a">XTRNGPSX_BURST_SIZE_IN_WORDS</a>&#160;&#160;&#160;4U</td></tr>
<tr class="memdesc:gaf7f5bd1585dc56e50d4f0c5bef8db42a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Burst size in words.  <a href="#gaf7f5bd1585dc56e50d4f0c5bef8db42a">More...</a><br/></td></tr>
<tr class="separator:gaf7f5bd1585dc56e50d4f0c5bef8db42a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0cd1496d0e68ec8adf6f020b4ee07639"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga0cd1496d0e68ec8adf6f020b4ee07639">XTRNGPSX_DF_MIN_LENGTH</a>&#160;&#160;&#160;2U</td></tr>
<tr class="memdesc:ga0cd1496d0e68ec8adf6f020b4ee07639"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum DF input length.  <a href="#ga0cd1496d0e68ec8adf6f020b4ee07639">More...</a><br/></td></tr>
<tr class="separator:ga0cd1496d0e68ec8adf6f020b4ee07639"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacdb1fbfdbaf6706a613cabfe35e4b23d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gacdb1fbfdbaf6706a613cabfe35e4b23d">XTRNGPSX_DF_MAX_LENGTH</a>&#160;&#160;&#160;0x1FU</td></tr>
<tr class="memdesc:gacdb1fbfdbaf6706a613cabfe35e4b23d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum DF input length.  <a href="#gacdb1fbfdbaf6706a613cabfe35e4b23d">More...</a><br/></td></tr>
<tr class="separator:gacdb1fbfdbaf6706a613cabfe35e4b23d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30f3bd42732148271382271d13f7d669"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga30f3bd42732148271382271d13f7d669">XTRNGPSX_DF_NUM_OF_BYTES_BEFORE_MIN_700CLKS_WAIT</a>&#160;&#160;&#160;8U</td></tr>
<tr class="memdesc:ga30f3bd42732148271382271d13f7d669"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of bytes to be written before wait.  <a href="#ga30f3bd42732148271382271d13f7d669">More...</a><br/></td></tr>
<tr class="separator:ga30f3bd42732148271382271d13f7d669"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0644d7e73c8645812333618387619c84"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga0644d7e73c8645812333618387619c84">XTRNGPSX_ADAPTPROPTESTCUTOFF_MAX_VAL</a>&#160;&#160;&#160;0x3FFU</td></tr>
<tr class="memdesc:ga0644d7e73c8645812333618387619c84"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum adaptprpptest cutoff value  <a href="#ga0644d7e73c8645812333618387619c84">More...</a><br/></td></tr>
<tr class="separator:ga0644d7e73c8645812333618387619c84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf4e638c7db3dcb2f105857b8d69880e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gacf4e638c7db3dcb2f105857b8d69880e">XTRNGPSX_REPCOUNTTESTCUTOFF_MAX_VAL</a>&#160;&#160;&#160;0x1FFU</td></tr>
<tr class="memdesc:gacf4e638c7db3dcb2f105857b8d69880e"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum repcounttest cutoff value  <a href="#gacf4e638c7db3dcb2f105857b8d69880e">More...</a><br/></td></tr>
<tr class="separator:gacf4e638c7db3dcb2f105857b8d69880e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf0628cfa849c9b93b2bc3ddb0e59870b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaf0628cfa849c9b93b2bc3ddb0e59870b">XTRNGPSX_DEFAULT_SEED_LIFE</a>&#160;&#160;&#160;256U</td></tr>
<tr class="memdesc:gaf0628cfa849c9b93b2bc3ddb0e59870b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default seed life.  <a href="#gaf0628cfa849c9b93b2bc3ddb0e59870b">More...</a><br/></td></tr>
<tr class="separator:gaf0628cfa849c9b93b2bc3ddb0e59870b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga77e0b07d55f767a322cb870bb0521da3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga77e0b07d55f767a322cb870bb0521da3">XTRNGPSX_PERS_STRING_LEN_IN_WORDS</a>&#160;&#160;&#160;12U</td></tr>
<tr class="memdesc:ga77e0b07d55f767a322cb870bb0521da3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Personalization string length in words.  <a href="#ga77e0b07d55f767a322cb870bb0521da3">More...</a><br/></td></tr>
<tr class="separator:ga77e0b07d55f767a322cb870bb0521da3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3257b88a565d4f7b0fa135f5c24f7fde"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga3257b88a565d4f7b0fa135f5c24f7fde">XTRNGPSX_PERS_STRING_LEN_IN_BYTES</a>&#160;&#160;&#160;48U</td></tr>
<tr class="memdesc:ga3257b88a565d4f7b0fa135f5c24f7fde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Personalization string length in bytes.  <a href="#ga3257b88a565d4f7b0fa135f5c24f7fde">More...</a><br/></td></tr>
<tr class="separator:ga3257b88a565d4f7b0fa135f5c24f7fde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6633fc0a90497ef7a28b75e708053d77"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga6633fc0a90497ef7a28b75e708053d77">XTRNGPSX_SEC_STRENGTH_IN_BYTES</a>&#160;&#160;&#160;32U</td></tr>
<tr class="memdesc:ga6633fc0a90497ef7a28b75e708053d77"><td class="mdescLeft">&#160;</td><td class="mdescRight">security strength in Bytes  <a href="#ga6633fc0a90497ef7a28b75e708053d77">More...</a><br/></td></tr>
<tr class="separator:ga6633fc0a90497ef7a28b75e708053d77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf77ee289c4048ef0d77b350f6eda8868"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaf77ee289c4048ef0d77b350f6eda8868">TRNG_STATUS</a>&#160;&#160;&#160;(0x00000004U)</td></tr>
<tr class="memdesc:gaf77ee289c4048ef0d77b350f6eda8868"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register: TRNG_STATUS.  <a href="#gaf77ee289c4048ef0d77b350f6eda8868">More...</a><br/></td></tr>
<tr class="separator:gaf77ee289c4048ef0d77b350f6eda8868"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga627ca508102e338acd949acd07143efc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga627ca508102e338acd949acd07143efc">TRNG_CTRL</a>&#160;&#160;&#160;(0x00000008U)</td></tr>
<tr class="memdesc:ga627ca508102e338acd949acd07143efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register: TRNG_CTRL.  <a href="#ga627ca508102e338acd949acd07143efc">More...</a><br/></td></tr>
<tr class="separator:ga627ca508102e338acd949acd07143efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c41aa1786b9a3319d9ba21ed793e8e5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga9c41aa1786b9a3319d9ba21ed793e8e5">TRNG_CTRL_2</a>&#160;&#160;&#160;(0x0000000CU)</td></tr>
<tr class="memdesc:ga9c41aa1786b9a3319d9ba21ed793e8e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register: TRNG_CTRL_2.  <a href="#ga9c41aa1786b9a3319d9ba21ed793e8e5">More...</a><br/></td></tr>
<tr class="separator:ga9c41aa1786b9a3319d9ba21ed793e8e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5271f5f0b2ecb9126c07d68581116ccf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga5271f5f0b2ecb9126c07d68581116ccf">TRNG_CTRL_3</a>&#160;&#160;&#160;(0x00000010U)</td></tr>
<tr class="memdesc:ga5271f5f0b2ecb9126c07d68581116ccf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register: TRNG_CTRL_3.  <a href="#ga5271f5f0b2ecb9126c07d68581116ccf">More...</a><br/></td></tr>
<tr class="separator:ga5271f5f0b2ecb9126c07d68581116ccf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1e96b5268436833221c1187eb8eb352"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gac1e96b5268436833221c1187eb8eb352">TRNG_CTRL_4</a>&#160;&#160;&#160;(0x00000014U)</td></tr>
<tr class="memdesc:gac1e96b5268436833221c1187eb8eb352"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register: TRNG_CTRL_4.  <a href="#gac1e96b5268436833221c1187eb8eb352">More...</a><br/></td></tr>
<tr class="separator:gac1e96b5268436833221c1187eb8eb352"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9db2e85bbf48d3398bb57fdd83883299"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga9db2e85bbf48d3398bb57fdd83883299">TRNG_PER_STRNG_11</a>&#160;&#160;&#160;(0x000000ACU)</td></tr>
<tr class="memdesc:ga9db2e85bbf48d3398bb57fdd83883299"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register: TRNG_PER_STRNG_11.  <a href="#ga9db2e85bbf48d3398bb57fdd83883299">More...</a><br/></td></tr>
<tr class="separator:ga9db2e85bbf48d3398bb57fdd83883299"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb6c603167ad973de2393d02da9757f5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaeb6c603167ad973de2393d02da9757f5">TRNG_CORE_OUTPUT</a>&#160;&#160;&#160;(0x000000C0U)</td></tr>
<tr class="memdesc:gaeb6c603167ad973de2393d02da9757f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register: TRNG_CORE_OUTPUT.  <a href="#gaeb6c603167ad973de2393d02da9757f5">More...</a><br/></td></tr>
<tr class="separator:gaeb6c603167ad973de2393d02da9757f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1febe7e7a18bb1d14cb3ebbafa06dd1c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga1febe7e7a18bb1d14cb3ebbafa06dd1c">TRNG_RESET</a>&#160;&#160;&#160;(0x000000D0U)</td></tr>
<tr class="memdesc:ga1febe7e7a18bb1d14cb3ebbafa06dd1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register: TRNG_RESET.  <a href="#ga1febe7e7a18bb1d14cb3ebbafa06dd1c">More...</a><br/></td></tr>
<tr class="separator:ga1febe7e7a18bb1d14cb3ebbafa06dd1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga67d733d1c108e408b09b96db25076861"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga67d733d1c108e408b09b96db25076861">TRNG_OSC_EN</a>&#160;&#160;&#160;(0x000000D4U)</td></tr>
<tr class="memdesc:ga67d733d1c108e408b09b96db25076861"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register: TRNG_OSC_EN.  <a href="#ga67d733d1c108e408b09b96db25076861">More...</a><br/></td></tr>
<tr class="separator:ga67d733d1c108e408b09b96db25076861"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gabf665f37f1800c3d3859681db4fb46c2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gabf665f37f1800c3d3859681db4fb46c2">XTrngpsx_ErrorState</a> { <br/>
&#160;&#160;<a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2af33a5bf5d37571fefcdaa758930d6c5b">XTRNGPSX_UNHEALTHY</a> = 1, 
<a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2a519e903ee50abb8ccf5050c6bde24740">XTRNGPSX_HEALTHY</a>, 
<a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2ac8bf6bfdece57626cb0915eb4d8772b4">XTRNGPSX_CATASTROPHIC</a>, 
<a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2aea69652aba529ca2df1550310a5b92cc">XTRNGPSX_ERROR</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2a7c767c57bf2693d05df2a4aa7ed49b60">XTRNGPSX_STARTUP_TEST</a>
<br/>
 }</td></tr>
<tr class="separator:gabf665f37f1800c3d3859681db4fb46c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a37c0faa6994f63b7c2c62ffe43562f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga1a37c0faa6994f63b7c2c62ffe43562f">XTrngpsx_State</a> { <a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fab40d38d0bc64cb683a4ade9c3d07bd1b">XTRNGPSX_UNINITIALIZED_STATE</a> = 1, 
<a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fa6256a9f5a1ae6be94d94216a77e47d1c">XTRNGPSX_INSTANTIATE_STATE</a>, 
<a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fa0ec15ca3bf0e6216ad396aab80cd64db">XTRNGPSX_RESEED_STATE</a>, 
<a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fabf5f966ef2781b173f3d0126aa1aa1d3">XTRNGPSX_GENERATE_STATE</a>
 }</td></tr>
<tr class="separator:ga1a37c0faa6994f63b7c2c62ffe43562f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2d0ae14b9bbf4f302c87faaa43cb8a79"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga2d0ae14b9bbf4f302c87faaa43cb8a79">XTrngpsx_ErrorCodes</a> { <br/>
&#160;&#160;<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a3028234bc4951452efec651d280e9a13">XTRNGPSX_INVALID_PARAM</a> = 0x0, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79abea04f8cfe70d6dc5a8e7a78d8a9929a">XTRNGPSX_INVALID_MODE</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79ace1309d483b3c71b4648cfc74ffc5944">XTRNGPSX_INVALID_DF_LENGTH</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a75b95f1933476804c7b9aabc342b465f">XTRNGPSX_INVALID_SEED_LIFE</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79aaf19eaa7b8db854d074a23c6722bc99d">XTRNGPSX_INVALID_SEED_VALUE</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a95625aa33c96fc9e65543064eb4e973e">XTRNGPSX_INVALID_SEED_LENGTH</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a21c4b76c9247554959c5f0ff66568ac0">XTRNGPSX_INVALID_STATE</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a892ff927b85e5aeb786102b701523766">XTRNGPSX_INVALID_ADAPTPROPTEST_CUTOFF_VALUE</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a4879ffc6bc8dbbef89413a41af0bef1f">XTRNGPSX_INVALID_REPCOUNTTEST_CUTOFF_VALUE</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a12c6a942189e26d4ef054ec3b4e5a39f">XTRNGPSX_USER_CFG_COPY_ERROR</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a750afc0bc2b7948b06e719628dce4ec4">XTRNGPSX_UNHEALTHY_STATE</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79ab478bf676839153009c7a5bc91005079">XTRNGPSX_INVALID_BUF_SIZE</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a45649834be62e2cac315b4ed8db133f9">XTRNGPSX_RESEED_REQUIRED_ERROR</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a026fb1ebe44fe8daa96bb6a7b27e98c9">XTRNG_PSX_INVALID_PREDRES_VALUE</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a1e193483a8faf3099ed9860439b6ee3d">XTRNGPSX_MEMSET_UNINSTANTIATE_ERROR</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a611d0be64ec9b573c0aa0ed99e0a5975">XTRNGPSX_TIMEOUT_ERROR</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a83efeb211988308d8f9b07bbbe8c23b3">XTRNGPSX_CATASTROPHIC_CTF_ERROR</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a2929b58685ab788ea0107d339657632d">XTRNGPSX_CATASTROPHIC_DTF_ERROR</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a16fc12b7986ebaee8fe81ae27042988a">XTRNGPSX_KAT_FAILED_ERROR</a>, 
<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a8b29809ecc7cba250e0961eb2e8f4ce6">XTRNGPSX_WRITE_ERROR</a>, 
<br/>
&#160;&#160;<a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a07e0d5857d20d9872791857be99cd964">XTRNGPSX_INVALID_BLOCKING_MODE</a>
<br/>
 }</td></tr>
<tr class="separator:ga2d0ae14b9bbf4f302c87faaa43cb8a79"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga6b5653250d7dad396a064b0ba6fa5c34"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga6b5653250d7dad396a064b0ba6fa5c34">XTrngpsx_CfgInitialize</a> (XTrngpsx_Instance *InstancePtr, const XTrngpsx_Config *CfgPtr, UINTPTR EffectiveAddr)</td></tr>
<tr class="memdesc:ga6b5653250d7dad396a064b0ba6fa5c34"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the TRNGPSV instance/driver.  <a href="#ga6b5653250d7dad396a064b0ba6fa5c34">More...</a><br/></td></tr>
<tr class="separator:ga6b5653250d7dad396a064b0ba6fa5c34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga68da9a334ae46bbed63a36ae6a273745"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga68da9a334ae46bbed63a36ae6a273745">XTrngpsx_Instantiate</a> (XTrngpsx_Instance *InstancePtr, const u8 *Seed, u32 SeedLength, const u8 *PersStr, const XTrngpsx_UserConfig *UserCfg)</td></tr>
<tr class="memdesc:ga68da9a334ae46bbed63a36ae6a273745"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function instantiates the TRNG instance with user configure values.  <a href="#ga68da9a334ae46bbed63a36ae6a273745">More...</a><br/></td></tr>
<tr class="separator:ga68da9a334ae46bbed63a36ae6a273745"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27d626b65acc3b1e97573f4c2d2ee8e1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga27d626b65acc3b1e97573f4c2d2ee8e1">XTrngpsx_Reseed</a> (XTrngpsx_Instance *InstancePtr, const u8 *Seed, u8 DLen)</td></tr>
<tr class="memdesc:ga27d626b65acc3b1e97573f4c2d2ee8e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function triggers and reseeds the DRBG module.  <a href="#ga27d626b65acc3b1e97573f4c2d2ee8e1">More...</a><br/></td></tr>
<tr class="separator:ga27d626b65acc3b1e97573f4c2d2ee8e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa94d3f0522f2c56e9a4b6abe4193db2e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaa94d3f0522f2c56e9a4b6abe4193db2e">XTrngpsx_Generate</a> (XTrngpsx_Instance *InstancePtr, u8 *RandBuf, u32 RandBufSize, u8 PredResistance)</td></tr>
<tr class="memdesc:gaa94d3f0522f2c56e9a4b6abe4193db2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function generates and collects random data in to a buffer.  <a href="#gaa94d3f0522f2c56e9a4b6abe4193db2e">More...</a><br/></td></tr>
<tr class="separator:gaa94d3f0522f2c56e9a4b6abe4193db2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15ee0bc83b064ce7910792c014c589b1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga15ee0bc83b064ce7910792c014c589b1">XTrngpsx_Uninstantiate</a> (XTrngpsx_Instance *InstancePtr)</td></tr>
<tr class="memdesc:ga15ee0bc83b064ce7910792c014c589b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function uninstantiates the TRNG instance.  <a href="#ga15ee0bc83b064ce7910792c014c589b1">More...</a><br/></td></tr>
<tr class="separator:ga15ee0bc83b064ce7910792c014c589b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b58c114f10a1f421ea6864d1983c5e3"><td class="memItemLeft" align="right" valign="top">XTrngpsx_Config *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga4b58c114f10a1f421ea6864d1983c5e3">XTrngpsx_LookupConfig</a> (u16 DeviceId)</td></tr>
<tr class="memdesc:ga4b58c114f10a1f421ea6864d1983c5e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns a reference to an XTrngpsx_Config structure based on the DeviceId.  <a href="#ga4b58c114f10a1f421ea6864d1983c5e3">More...</a><br/></td></tr>
<tr class="separator:ga4b58c114f10a1f421ea6864d1983c5e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96822ba4d9b936cb95d8190ffd3095f0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat</a> (XTrngpsx_Instance *InstancePtr)</td></tr>
<tr class="memdesc:ga96822ba4d9b936cb95d8190ffd3095f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function runs DRBG self test i.e DRBG full cycle Instantiate+Reseed, Reseed and Generate.  <a href="#ga96822ba4d9b936cb95d8190ffd3095f0">More...</a><br/></td></tr>
<tr class="separator:ga96822ba4d9b936cb95d8190ffd3095f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b57a3574f76fbaf1edac0255b95373e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga9b57a3574f76fbaf1edac0255b95373e">XTrngpsx_HealthTest</a> (XTrngpsx_Instance *InstancePtr)</td></tr>
<tr class="memdesc:ga9b57a3574f76fbaf1edac0255b95373e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function runs health tests.  <a href="#ga9b57a3574f76fbaf1edac0255b95373e">More...</a><br/></td></tr>
<tr class="separator:ga9b57a3574f76fbaf1edac0255b95373e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaecce7c23f64a684ac613d6c36ae708cb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaecce7c23f64a684ac613d6c36ae708cb">XTrngpsx_PreOperationalSelfTests</a> (XTrngpsx_Instance *InstancePtr)</td></tr>
<tr class="memdesc:gaecce7c23f64a684ac613d6c36ae708cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function runs preoperational self tests and updates TRNG error state.  <a href="#gaecce7c23f64a684ac613d6c36ae708cb">More...</a><br/></td></tr>
<tr class="separator:gaecce7c23f64a684ac613d6c36ae708cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Constant definitions for parameters used for Health and KAT tests</h2></td></tr>
<tr class="memitem:gaab24ba681f298c15064c277757f8c7c5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#gaab24ba681f298c15064c277757f8c7c5">XTRNGPSX_KAT_DEFAULT_DF_lENGTH</a>&#160;&#160;&#160;7U</td></tr>
<tr class="memdesc:gaab24ba681f298c15064c277757f8c7c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant definitions for Health and KAT tests.  <a href="#gaab24ba681f298c15064c277757f8c7c5">More...</a><br/></td></tr>
<tr class="separator:gaab24ba681f298c15064c277757f8c7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18bacb2c9611d69bff3d8faeb800a345"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga18bacb2c9611d69bff3d8faeb800a345">XTRNGPSX_KAT_DEFAULT_SEED_LIFE</a>&#160;&#160;&#160;2U</td></tr>
<tr class="memdesc:ga18bacb2c9611d69bff3d8faeb800a345"><td class="mdescLeft">&#160;</td><td class="mdescRight">Seed life.  <a href="#ga18bacb2c9611d69bff3d8faeb800a345">More...</a><br/></td></tr>
<tr class="separator:ga18bacb2c9611d69bff3d8faeb800a345"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga731ef8ad5a39bb107502c64ec57f5f00"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___overview.html#ga731ef8ad5a39bb107502c64ec57f5f00">XTRNGPSX_KAT_SEED_LEN_IN_BYTES</a>&#160;&#160;&#160;128U</td></tr>
<tr class="memdesc:ga731ef8ad5a39bb107502c64ec57f5f00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Seed length in bytes.  <a href="#ga731ef8ad5a39bb107502c64ec57f5f00">More...</a><br/></td></tr>
<tr class="separator:ga731ef8ad5a39bb107502c64ec57f5f00"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="gaeb6c603167ad973de2393d02da9757f5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CORE_OUTPUT&#160;&#160;&#160;(0x000000C0U)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register: TRNG_CORE_OUTPUT. </p>

</div>
</div>
<a class="anchor" id="ga627ca508102e338acd949acd07143efc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL&#160;&#160;&#160;(0x00000008U)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register: TRNG_CTRL. </p>

<p>Referenced by <a class="el" href="group___overview.html#gaa94d3f0522f2c56e9a4b6abe4193db2e">XTrngpsx_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9c41aa1786b9a3319d9ba21ed793e8e5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL_2&#160;&#160;&#160;(0x0000000CU)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register: TRNG_CTRL_2. </p>

</div>
</div>
<a class="anchor" id="ga5271f5f0b2ecb9126c07d68581116ccf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL_3&#160;&#160;&#160;(0x00000010U)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register: TRNG_CTRL_3. </p>

</div>
</div>
<a class="anchor" id="gac1e96b5268436833221c1187eb8eb352"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_CTRL_4&#160;&#160;&#160;(0x00000014U)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register: TRNG_CTRL_4. </p>

</div>
</div>
<a class="anchor" id="ga67d733d1c108e408b09b96db25076861"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_OSC_EN&#160;&#160;&#160;(0x000000D4U)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register: TRNG_OSC_EN. </p>

<p>Referenced by <a class="el" href="group___overview.html#gaa94d3f0522f2c56e9a4b6abe4193db2e">XTrngpsx_Generate()</a>, and <a class="el" href="group___overview.html#ga15ee0bc83b064ce7910792c014c589b1">XTrngpsx_Uninstantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9db2e85bbf48d3398bb57fdd83883299"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_PER_STRNG_11&#160;&#160;&#160;(0x000000ACU)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register: TRNG_PER_STRNG_11. </p>

</div>
</div>
<a class="anchor" id="ga1febe7e7a18bb1d14cb3ebbafa06dd1c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_RESET&#160;&#160;&#160;(0x000000D0U)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register: TRNG_RESET. </p>

</div>
</div>
<a class="anchor" id="gaf77ee289c4048ef0d77b350f6eda8868"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TRNG_STATUS&#160;&#160;&#160;(0x00000004U)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register: TRNG_STATUS. </p>

</div>
</div>
<a class="anchor" id="ga0644d7e73c8645812333618387619c84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_ADAPTPROPTESTCUTOFF_MAX_VAL&#160;&#160;&#160;0x3FFU</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>maximum adaptprpptest cutoff value </p>

<p>Referenced by <a class="el" href="group___overview.html#ga68da9a334ae46bbed63a36ae6a273745">XTrngpsx_Instantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="gaebafd9bdd9fd17cc76f7d644f2661b4c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_BLOCK_LEN_IN_BYTES&#160;&#160;&#160;16U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>TRNG block length length in bytes. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga68da9a334ae46bbed63a36ae6a273745">XTrngpsx_Instantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf7f5bd1585dc56e50d4f0c5bef8db42a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_BURST_SIZE_IN_WORDS&#160;&#160;&#160;4U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Burst size in words. </p>

</div>
</div>
<a class="anchor" id="ga6192793c73f6cbf4a3635835507d28c4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_BYTE_LEN_IN_BITS&#160;&#160;&#160;8U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Byte length in bits. </p>

</div>
</div>
<a class="anchor" id="gaf0628cfa849c9b93b2bc3ddb0e59870b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_DEFAULT_SEED_LIFE&#160;&#160;&#160;256U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Default seed life. </p>

</div>
</div>
<a class="anchor" id="gacdb1fbfdbaf6706a613cabfe35e4b23d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_DF_MAX_LENGTH&#160;&#160;&#160;0x1FU</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum DF input length. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga68da9a334ae46bbed63a36ae6a273745">XTrngpsx_Instantiate()</a>, and <a class="el" href="group___overview.html#ga27d626b65acc3b1e97573f4c2d2ee8e1">XTrngpsx_Reseed()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0cd1496d0e68ec8adf6f020b4ee07639"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_DF_MIN_LENGTH&#160;&#160;&#160;2U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Minimum DF input length. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga68da9a334ae46bbed63a36ae6a273745">XTrngpsx_Instantiate()</a>, and <a class="el" href="group___overview.html#ga27d626b65acc3b1e97573f4c2d2ee8e1">XTrngpsx_Reseed()</a>.</p>

</div>
</div>
<a class="anchor" id="ga30f3bd42732148271382271d13f7d669"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_DF_NUM_OF_BYTES_BEFORE_MIN_700CLKS_WAIT&#160;&#160;&#160;8U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Number of bytes to be written before wait. </p>

</div>
</div>
<a class="anchor" id="gaf6620c2ebd55840666179003a283acea"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_GENERATE_TIMEOUT&#160;&#160;&#160;1500000U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Generate timeout in micro-seconds. </p>

</div>
</div>
<a class="anchor" id="gaab24ba681f298c15064c277757f8c7c5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_KAT_DEFAULT_DF_lENGTH&#160;&#160;&#160;7U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constant definitions for Health and KAT tests. </p>
<p>DF length </p>

<p>Referenced by <a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat()</a>.</p>

</div>
</div>
<a class="anchor" id="ga18bacb2c9611d69bff3d8faeb800a345"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_KAT_DEFAULT_SEED_LIFE&#160;&#160;&#160;2U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Seed life. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat()</a>.</p>

</div>
</div>
<a class="anchor" id="ga731ef8ad5a39bb107502c64ec57f5f00"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_KAT_SEED_LEN_IN_BYTES&#160;&#160;&#160;128U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Seed length in bytes. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat()</a>.</p>

</div>
</div>
<a class="anchor" id="ga369bd60024827c90f5863cb1e82baa59"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_MAX_SEEDLIFE&#160;&#160;&#160;0x80000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Maximum seed life 2^19. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga68da9a334ae46bbed63a36ae6a273745">XTrngpsx_Instantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="gab156d67eb4a798f294dc6ddebe8ab53b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_MIN_SEEDLIFE&#160;&#160;&#160;1U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Minimum seed life. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga68da9a334ae46bbed63a36ae6a273745">XTrngpsx_Instantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3257b88a565d4f7b0fa135f5c24f7fde"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_PERS_STRING_LEN_IN_BYTES&#160;&#160;&#160;48U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Personalization string length in bytes. </p>

<p>Referenced by <a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat()</a>.</p>

</div>
</div>
<a class="anchor" id="ga77e0b07d55f767a322cb870bb0521da3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_PERS_STRING_LEN_IN_WORDS&#160;&#160;&#160;12U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Personalization string length in words. </p>

</div>
</div>
<a class="anchor" id="gacf4e638c7db3dcb2f105857b8d69880e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_REPCOUNTTESTCUTOFF_MAX_VAL&#160;&#160;&#160;0x1FFU</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>maximum repcounttest cutoff value </p>

<p>Referenced by <a class="el" href="group___overview.html#ga68da9a334ae46bbed63a36ae6a273745">XTrngpsx_Instantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga88c45d9fcea045da2a83fac3a839a976"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_RESEED_TIMEOUT&#160;&#160;&#160;1500000U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reseed timeout in micro-seconds. </p>

</div>
</div>
<a class="anchor" id="ga613878c668ba11cca5bfffd493caccba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_SEC_STRENGTH_IN_BURSTS&#160;&#160;&#160;2U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Security strength in 128-bit bursts. </p>

</div>
</div>
<a class="anchor" id="ga6633fc0a90497ef7a28b75e708053d77"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_SEC_STRENGTH_IN_BYTES&#160;&#160;&#160;32U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>security strength in Bytes </p>

<p>Referenced by <a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat()</a>, and <a class="el" href="group___overview.html#gaa94d3f0522f2c56e9a4b6abe4193db2e">XTrngpsx_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9ef3e8b4f65633065b5de8de9f7429b4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define XTRNGPSX_WORD_LEN_IN_BYTES&#160;&#160;&#160;4U</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Word length in bytes. </p>

<p>Referenced by <a class="el" href="group___overview.html#gaa94d3f0522f2c56e9a4b6abe4193db2e">XTrngpsx_Generate()</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga2d0ae14b9bbf4f302c87faaa43cb8a79"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group___overview.html#ga2d0ae14b9bbf4f302c87faaa43cb8a79">XTrngpsx_ErrorCodes</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a3028234bc4951452efec651d280e9a13"></a>XTRNGPSX_INVALID_PARAM</em>&nbsp;</td><td class="fielddoc">
<p>0x0 - Invalid argument </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79abea04f8cfe70d6dc5a8e7a78d8a9929a"></a>XTRNGPSX_INVALID_MODE</em>&nbsp;</td><td class="fielddoc">
<p>0x1 - Error when TRNG operation mode is invalid </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79ace1309d483b3c71b4648cfc74ffc5944"></a>XTRNGPSX_INVALID_DF_LENGTH</em>&nbsp;</td><td class="fielddoc">
<p>0x2 - Error when DF length is invalid </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a75b95f1933476804c7b9aabc342b465f"></a>XTRNGPSX_INVALID_SEED_LIFE</em>&nbsp;</td><td class="fielddoc">
<p>0x3 - Error when seed life is invalid </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79aaf19eaa7b8db854d074a23c6722bc99d"></a>XTRNGPSX_INVALID_SEED_VALUE</em>&nbsp;</td><td class="fielddoc">
<p>0x4 - Error when seed is NULL </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a95625aa33c96fc9e65543064eb4e973e"></a>XTRNGPSX_INVALID_SEED_LENGTH</em>&nbsp;</td><td class="fielddoc">
<p>0x5 - Error when input seed length doesn't match with df length </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a21c4b76c9247554959c5f0ff66568ac0"></a>XTRNGPSX_INVALID_STATE</em>&nbsp;</td><td class="fielddoc">
<p>0x6 - Error when TRNG state is invalid </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a892ff927b85e5aeb786102b701523766"></a>XTRNGPSX_INVALID_ADAPTPROPTEST_CUTOFF_VALUE</em>&nbsp;</td><td class="fielddoc">
<p>0x7 - Invalid adaptive proptest cutoff value </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a4879ffc6bc8dbbef89413a41af0bef1f"></a>XTRNGPSX_INVALID_REPCOUNTTEST_CUTOFF_VALUE</em>&nbsp;</td><td class="fielddoc">
<p>0x8 - Invalid repitive count test cutoff value </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a12c6a942189e26d4ef054ec3b4e5a39f"></a>XTRNGPSX_USER_CFG_COPY_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>0x9 - Error during memcpy of UserConfig structure </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a750afc0bc2b7948b06e719628dce4ec4"></a>XTRNGPSX_UNHEALTHY_STATE</em>&nbsp;</td><td class="fielddoc">
<p>0xA - Error when device fails KAT or health tests </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79ab478bf676839153009c7a5bc91005079"></a>XTRNGPSX_INVALID_BUF_SIZE</em>&nbsp;</td><td class="fielddoc">
<p>0xB - Error invalid buffer size </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a45649834be62e2cac315b4ed8db133f9"></a>XTRNGPSX_RESEED_REQUIRED_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>0xC - Error seed life expired and reseed required in DRBG mode </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a026fb1ebe44fe8daa96bb6a7b27e98c9"></a>XTRNG_PSX_INVALID_PREDRES_VALUE</em>&nbsp;</td><td class="fielddoc">
<p>0xD - Invalid predication resistance valye </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a1e193483a8faf3099ed9860439b6ee3d"></a>XTRNGPSX_MEMSET_UNINSTANTIATE_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>0xE - Error during memset </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a611d0be64ec9b573c0aa0ed99e0a5975"></a>XTRNGPSX_TIMEOUT_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>0xF - Timeout while waiting for done bit during reseed or generate </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a83efeb211988308d8f9b07bbbe8c23b3"></a>XTRNGPSX_CATASTROPHIC_CTF_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>0x10 - CTF error during reseed </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a2929b58685ab788ea0107d339657632d"></a>XTRNGPSX_CATASTROPHIC_DTF_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>0x11 - DTF error during generate </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a16fc12b7986ebaee8fe81ae27042988a"></a>XTRNGPSX_KAT_FAILED_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>0x12 - Error when resultant TRNG o/p doesn't match with expected o/p </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a8b29809ecc7cba250e0961eb2e8f4ce6"></a>XTRNGPSX_WRITE_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>0x13 - Error occurred while writing in to the register </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga2d0ae14b9bbf4f302c87faaa43cb8a79a07e0d5857d20d9872791857be99cd964"></a>XTRNGPSX_INVALID_BLOCKING_MODE</em>&nbsp;</td><td class="fielddoc">
<p>0x14 - Error occurred when invalid blocking mode is selected </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="gabf665f37f1800c3d3859681db4fb46c2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group___overview.html#gabf665f37f1800c3d3859681db4fb46c2">XTrngpsx_ErrorState</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggabf665f37f1800c3d3859681db4fb46c2af33a5bf5d37571fefcdaa758930d6c5b"></a>XTRNGPSX_UNHEALTHY</em>&nbsp;</td><td class="fielddoc">
<p>unhealthy state </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabf665f37f1800c3d3859681db4fb46c2a519e903ee50abb8ccf5050c6bde24740"></a>XTRNGPSX_HEALTHY</em>&nbsp;</td><td class="fielddoc">
<p>healthy state </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabf665f37f1800c3d3859681db4fb46c2ac8bf6bfdece57626cb0915eb4d8772b4"></a>XTRNGPSX_CATASTROPHIC</em>&nbsp;</td><td class="fielddoc">
<p>catastropic state </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabf665f37f1800c3d3859681db4fb46c2aea69652aba529ca2df1550310a5b92cc"></a>XTRNGPSX_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>error state </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabf665f37f1800c3d3859681db4fb46c2a7c767c57bf2693d05df2a4aa7ed49b60"></a>XTRNGPSX_STARTUP_TEST</em>&nbsp;</td><td class="fielddoc">
<p>startup test </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga1a37c0faa6994f63b7c2c62ffe43562f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group___overview.html#ga1a37c0faa6994f63b7c2c62ffe43562f">XTrngpsx_State</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga1a37c0faa6994f63b7c2c62ffe43562fab40d38d0bc64cb683a4ade9c3d07bd1b"></a>XTRNGPSX_UNINITIALIZED_STATE</em>&nbsp;</td><td class="fielddoc">
<p>Default state. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a37c0faa6994f63b7c2c62ffe43562fa6256a9f5a1ae6be94d94216a77e47d1c"></a>XTRNGPSX_INSTANTIATE_STATE</em>&nbsp;</td><td class="fielddoc">
<p>Instantiate state. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a37c0faa6994f63b7c2c62ffe43562fa0ec15ca3bf0e6216ad396aab80cd64db"></a>XTRNGPSX_RESEED_STATE</em>&nbsp;</td><td class="fielddoc">
<p>Reseed state. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga1a37c0faa6994f63b7c2c62ffe43562fabf5f966ef2781b173f3d0126aa1aa1d3"></a>XTRNGPSX_GENERATE_STATE</em>&nbsp;</td><td class="fielddoc">
<p>Generate state. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga6b5653250d7dad396a064b0ba6fa5c34"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XTrngpsx_CfgInitialize </td>
          <td>(</td>
          <td class="paramtype">XTrngpsx_Instance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const XTrngpsx_Config *&#160;</td>
          <td class="paramname"><em>CfgPtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINTPTR&#160;</td>
          <td class="paramname"><em>EffectiveAddr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initializes the TRNGPSV instance/driver. </p>
<p>This function must be called prior to using the driver. Initialization includes only setting up the device id and base address. All the remaining parameters of the Instance will be initialized in Instantiate function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the XTrngpsx instance. </td></tr>
    <tr><td class="paramname">CfgPtr</td><td>points to the configuration structure associated with the TRNGPSX driver. </td></tr>
    <tr><td class="paramname">EffectiveAddr</td><td>is the base address of the device. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if initialization was successful.</li>
<li>XTRNGPSX_INVALID_PARAM if invalid parameter passed to this function. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2aea69652aba529ca2df1550310a5b92cc">XTRNGPSX_ERROR</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a3028234bc4951452efec651d280e9a13">XTRNGPSX_INVALID_PARAM</a>, and <a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fab40d38d0bc64cb683a4ade9c3d07bd1b">XTRNGPSX_UNINITIALIZED_STATE</a>.</p>

</div>
</div>
<a class="anchor" id="ga96822ba4d9b936cb95d8190ffd3095f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XTrngpsx_DRBGKat </td>
          <td>(</td>
          <td class="paramtype">XTrngpsx_Instance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function runs DRBG self test i.e DRBG full cycle Instantiate+Reseed, Reseed and Generate. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to XTrngpsx_Instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On success</li>
<li>Error Code On failure </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#gaa94d3f0522f2c56e9a4b6abe4193db2e">XTrngpsx_Generate()</a>, <a class="el" href="group___overview.html#ga68da9a334ae46bbed63a36ae6a273745">XTrngpsx_Instantiate()</a>, <a class="el" href="group___overview.html#gaab24ba681f298c15064c277757f8c7c5">XTRNGPSX_KAT_DEFAULT_DF_lENGTH</a>, <a class="el" href="group___overview.html#ga18bacb2c9611d69bff3d8faeb800a345">XTRNGPSX_KAT_DEFAULT_SEED_LIFE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a16fc12b7986ebaee8fe81ae27042988a">XTRNGPSX_KAT_FAILED_ERROR</a>, <a class="el" href="group___overview.html#ga731ef8ad5a39bb107502c64ec57f5f00">XTRNGPSX_KAT_SEED_LEN_IN_BYTES</a>, <a class="el" href="group___overview.html#ga3257b88a565d4f7b0fa135f5c24f7fde">XTRNGPSX_PERS_STRING_LEN_IN_BYTES</a>, <a class="el" href="group___overview.html#ga27d626b65acc3b1e97573f4c2d2ee8e1">XTrngpsx_Reseed()</a>, <a class="el" href="group___overview.html#ga6633fc0a90497ef7a28b75e708053d77">XTRNGPSX_SEC_STRENGTH_IN_BYTES</a>, and <a class="el" href="group___overview.html#ga15ee0bc83b064ce7910792c014c589b1">XTrngpsx_Uninstantiate()</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#gaecce7c23f64a684ac613d6c36ae708cb">XTrngpsx_PreOperationalSelfTests()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa94d3f0522f2c56e9a4b6abe4193db2e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XTrngpsx_Generate </td>
          <td>(</td>
          <td class="paramtype">XTrngpsx_Instance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8 *&#160;</td>
          <td class="paramname"><em>RandBuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>RandBufSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>PredResistance</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function generates and collects random data in to a buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to XTrngpsx_Instance </td></tr>
    <tr><td class="paramname">RandBuf</td><td>Pointer to buffer in which random data is stored. </td></tr>
    <tr><td class="paramname">RandBufSize</td><td>Size of the buffer in which random data is stored. </td></tr>
    <tr><td class="paramname">PredResistance</td><td>is the flag that controls Generate level Prediction Resistance. When enabled, it mandates fresh seed for every Generate operation.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On successful generate of random number</li>
<li>XTRNGPSX_INVALID_PARAM If invalid parameter(s) passed to this function.</li>
<li>XTRNGPSX_INVALID_STATE If state is not sequenced correctly</li>
<li>XTRNGPSX_INVALID_MODE If invalid mode is passed to this function</li>
<li>XTRNGPSX_INVALID_BUF_SIZE If buffer is less that 256 bytes or NULL</li>
</ul>
</dd></dl>
<ul>
<li>XTRNG_PSX_INVALID_PREDRES_VALUE If invalid predication resistance value is passed to this function<ul>
<li>XTRNGPSX_UNHEALTHY_STATE If TRNG is in failure state, needs an uninstantiation or KAT should be run if error is catastrophic</li>
<li>XTRNGPSX_RESEED_REQUIRED_ERROR If elapsed seed life exceeds the requested seed life in DRBG mode</li>
</ul>
</li>
</ul>
<p>XTRNGPSX_TIMEOUT_ERROR If timeout occurred waiting for QCNT to become 4.</p>
<ul>
<li>XTRNGPSX_CATASTROPHIC_DTF_ERROR If DTF bit asserted in STATUS register.</li>
<li>XTRNGPSX_ERROR_WRITE On write failure<ul>
<li>XST_FAILURE On unexpected failure </li>
</ul>
</li>
</ul>

<p>References <a class="el" href="group___overview.html#ga627ca508102e338acd949acd07143efc">TRNG_CTRL</a>, <a class="el" href="group___overview.html#ga67d733d1c108e408b09b96db25076861">TRNG_OSC_EN</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a026fb1ebe44fe8daa96bb6a7b27e98c9">XTRNG_PSX_INVALID_PREDRES_VALUE</a>, <a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2ac8bf6bfdece57626cb0915eb4d8772b4">XTRNGPSX_CATASTROPHIC</a>, <a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2aea69652aba529ca2df1550310a5b92cc">XTRNGPSX_ERROR</a>, <a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fabf5f966ef2781b173f3d0126aa1aa1d3">XTRNGPSX_GENERATE_STATE</a>, <a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2a519e903ee50abb8ccf5050c6bde24740">XTRNGPSX_HEALTHY</a>, <a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fa6256a9f5a1ae6be94d94216a77e47d1c">XTRNGPSX_INSTANTIATE_STATE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79ab478bf676839153009c7a5bc91005079">XTRNGPSX_INVALID_BUF_SIZE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79abea04f8cfe70d6dc5a8e7a78d8a9929a">XTRNGPSX_INVALID_MODE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a3028234bc4951452efec651d280e9a13">XTRNGPSX_INVALID_PARAM</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a21c4b76c9247554959c5f0ff66568ac0">XTRNGPSX_INVALID_STATE</a>, <a class="el" href="group___overview.html#ga27d626b65acc3b1e97573f4c2d2ee8e1">XTrngpsx_Reseed()</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a45649834be62e2cac315b4ed8db133f9">XTRNGPSX_RESEED_REQUIRED_ERROR</a>, <a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fa0ec15ca3bf0e6216ad396aab80cd64db">XTRNGPSX_RESEED_STATE</a>, <a class="el" href="group___overview.html#ga6633fc0a90497ef7a28b75e708053d77">XTRNGPSX_SEC_STRENGTH_IN_BYTES</a>, <a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2a7c767c57bf2693d05df2a4aa7ed49b60">XTRNGPSX_STARTUP_TEST</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a750afc0bc2b7948b06e719628dce4ec4">XTRNGPSX_UNHEALTHY_STATE</a>, and <a class="el" href="group___overview.html#ga9ef3e8b4f65633065b5de8de9f7429b4">XTRNGPSX_WORD_LEN_IN_BYTES</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9b57a3574f76fbaf1edac0255b95373e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XTrngpsx_HealthTest </td>
          <td>(</td>
          <td class="paramtype">XTrngpsx_Instance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function runs health tests. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to XTrngpsx_Instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On success</li>
<li>Error Code On failure </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#ga68da9a334ae46bbed63a36ae6a273745">XTrngpsx_Instantiate()</a>, and <a class="el" href="group___overview.html#ga15ee0bc83b064ce7910792c014c589b1">XTrngpsx_Uninstantiate()</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#gaecce7c23f64a684ac613d6c36ae708cb">XTrngpsx_PreOperationalSelfTests()</a>.</p>

</div>
</div>
<a class="anchor" id="ga68da9a334ae46bbed63a36ae6a273745"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XTrngpsx_Instantiate </td>
          <td>(</td>
          <td class="paramtype">XTrngpsx_Instance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const u8 *&#160;</td>
          <td class="paramname"><em>Seed</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>SeedLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const u8 *&#160;</td>
          <td class="paramname"><em>PersStr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const XTrngpsx_UserConfig *&#160;</td>
          <td class="paramname"><em>UserCfg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function instantiates the TRNG instance with user configure values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to the XTrngpsx_Instance. </td></tr>
    <tr><td class="paramname">Seed</td><td>Pointer to the seed input </td></tr>
    <tr><td class="paramname">SeedLength</td><td>Seed length in bytes </td></tr>
    <tr><td class="paramname">PersStr</td><td>Pointer to the personalization string input </td></tr>
    <tr><td class="paramname">UserCfg</td><td>Pointer to the XTrngpsx_UserConfig</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On successful instantation</li>
<li>XTRNGPSX_INVALID_PARAM If invalid parameter(s) passed to this function.</li>
<li>XTRNGPSX_INVALID_SEED_VALUE If provide seed is NULL in DRBG mode</li>
<li>XTRNGPSX_INVALID_STATE If state is not in uninstantiate state</li>
<li>XTRNGPSX_UNHEALTHY_STATE If TRNG KAT fails</li>
<li>XTRNGPSX_INVALID_MODE If invalid mode is passed to this function</li>
<li>XTRNGPSX_INVALID_DF_LENGTH If invalid DF input length is passed as a function</li>
<li>XTRNGPSX_INVALID_SEED_LENGTH If provide seed length doesn't match with given DF length</li>
<li>XTRNGPSX_INVALID_SEED_LIFE If invalid seed life is provided</li>
<li>XTRNGPSX_INVALID_ADAPTPROPTEST_CUTOFF_VALUE If invalid cutoff value is provided</li>
<li>XTRNGPSX_INVALID_REPCOUNTTEST_CUTOFF_VALUE If invalid repetitive test cutoff value is provided</li>
<li>XTRNGPSX_USER_CFG_COPY_ERROR If error occurred during copy of XTrngpsx_UserConfig structure</li>
<li>XTRNGPSX_TIMEOUT_ERROR If timeout occurred waiting for done bit</li>
<li>XTRNGPSX_CATASTROPHIC_CTF_ERROR If CTF bit asserted in STATUS register.</li>
<li>XTRNGPSX_ERROR_WRITE On write failure</li>
<li>XTRNGPSX_INVALID_BLOCKING_MODE If invalid blocking mode is choosen</li>
<li>XST_FAILURE On unexpected failure </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#ga0644d7e73c8645812333618387619c84">XTRNGPSX_ADAPTPROPTESTCUTOFF_MAX_VAL</a>, <a class="el" href="group___overview.html#gaebafd9bdd9fd17cc76f7d644f2661b4c">XTRNGPSX_BLOCK_LEN_IN_BYTES</a>, <a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2ac8bf6bfdece57626cb0915eb4d8772b4">XTRNGPSX_CATASTROPHIC</a>, <a class="el" href="group___overview.html#gacdb1fbfdbaf6706a613cabfe35e4b23d">XTRNGPSX_DF_MAX_LENGTH</a>, <a class="el" href="group___overview.html#ga0cd1496d0e68ec8adf6f020b4ee07639">XTRNGPSX_DF_MIN_LENGTH</a>, <a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2aea69652aba529ca2df1550310a5b92cc">XTRNGPSX_ERROR</a>, <a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2a519e903ee50abb8ccf5050c6bde24740">XTRNGPSX_HEALTHY</a>, <a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fa6256a9f5a1ae6be94d94216a77e47d1c">XTRNGPSX_INSTANTIATE_STATE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a892ff927b85e5aeb786102b701523766">XTRNGPSX_INVALID_ADAPTPROPTEST_CUTOFF_VALUE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a07e0d5857d20d9872791857be99cd964">XTRNGPSX_INVALID_BLOCKING_MODE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79ace1309d483b3c71b4648cfc74ffc5944">XTRNGPSX_INVALID_DF_LENGTH</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79abea04f8cfe70d6dc5a8e7a78d8a9929a">XTRNGPSX_INVALID_MODE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a3028234bc4951452efec651d280e9a13">XTRNGPSX_INVALID_PARAM</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a4879ffc6bc8dbbef89413a41af0bef1f">XTRNGPSX_INVALID_REPCOUNTTEST_CUTOFF_VALUE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a95625aa33c96fc9e65543064eb4e973e">XTRNGPSX_INVALID_SEED_LENGTH</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a75b95f1933476804c7b9aabc342b465f">XTRNGPSX_INVALID_SEED_LIFE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79aaf19eaa7b8db854d074a23c6722bc99d">XTRNGPSX_INVALID_SEED_VALUE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a21c4b76c9247554959c5f0ff66568ac0">XTRNGPSX_INVALID_STATE</a>, <a class="el" href="group___overview.html#ga369bd60024827c90f5863cb1e82baa59">XTRNGPSX_MAX_SEEDLIFE</a>, <a class="el" href="group___overview.html#gab156d67eb4a798f294dc6ddebe8ab53b">XTRNGPSX_MIN_SEEDLIFE</a>, <a class="el" href="group___overview.html#gacf4e638c7db3dcb2f105857b8d69880e">XTRNGPSX_REPCOUNTTESTCUTOFF_MAX_VAL</a>, <a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fab40d38d0bc64cb683a4ade9c3d07bd1b">XTRNGPSX_UNINITIALIZED_STATE</a>, and <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a12c6a942189e26d4ef054ec3b4e5a39f">XTRNGPSX_USER_CFG_COPY_ERROR</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat()</a>, and <a class="el" href="group___overview.html#ga9b57a3574f76fbaf1edac0255b95373e">XTrngpsx_HealthTest()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4b58c114f10a1f421ea6864d1983c5e3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XTrngpsx_Config * XTrngpsx_LookupConfig </td>
          <td>(</td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>DeviceId</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function returns a reference to an XTrngpsx_Config structure based on the DeviceId. </p>
<p>The return value will refer to an entry in the device configuration table defined in the xtrngpsx_g.c file.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DeviceId</td><td>is the unique device ID of the device being lookedup.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XTrngpsx_LookupConfig returns a reference to a config record in the configuration table (in <a class="el" href="xtrngpsx_8c.html">xtrngpsx.c</a>) corresponding to DeviceId, or NULL if no match is found. </dd></dl>

</div>
</div>
<a class="anchor" id="gaecce7c23f64a684ac613d6c36ae708cb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XTrngpsx_PreOperationalSelfTests </td>
          <td>(</td>
          <td class="paramtype">XTrngpsx_Instance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function runs preoperational self tests and updates TRNG error state. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to XTrngpsx_Instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On success</li>
<li>Error Code On failure </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat()</a>, <a class="el" href="group___overview.html#ga9b57a3574f76fbaf1edac0255b95373e">XTrngpsx_HealthTest()</a>, and <a class="el" href="group___overview.html#ga15ee0bc83b064ce7910792c014c589b1">XTrngpsx_Uninstantiate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga27d626b65acc3b1e97573f4c2d2ee8e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XTrngpsx_Reseed </td>
          <td>(</td>
          <td class="paramtype">XTrngpsx_Instance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const u8 *&#160;</td>
          <td class="paramname"><em>Seed</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u8&#160;</td>
          <td class="paramname"><em>DLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function triggers and reseeds the DRBG module. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to XTrngpsx_Instance. </td></tr>
    <tr><td class="paramname">Seed</td><td>Pointer to the seed input </td></tr>
    <tr><td class="paramname">DLen</td><td>Seed length in TRNG block size</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS On successful reseed</li>
<li>XTRNGPSX_INVALID_PARAM If invalid parameter(s) passed to this function.</li>
<li>XTRNGPSX_INVALID_SEED_VALUE If provide seed is NULL in DRBG/HRNG mode</li>
<li>XTRNGPSX_INVALID_MODE If invalid mode is passed to this function</li>
<li>XTRNGPSX_INVALID_DF_LENGTH If invalid DF input length is passed as a function</li>
<li>XTRNGPSX_INVALID_STATE If state is not sequenced correctly</li>
<li>XTRNGPSX_UNHEALTHY_STATE If TRNG is in failure state, needs an uninstantiation or KAT should be run if the error is catastrophic</li>
</ul>
</dd></dl>
<ul>
<li>XTRNGPSX_TIMEOUT_ERROR If timeout occurred waiting for done bit</li>
<li>XTRNGPSX_CATASTROPHIC_CTF_ERROR If CTF bit asserted in STATUS register.</li>
<li>XTRNGPSX_ERROR_WRITE On write failure<ul>
<li>XST_FAILURE On unexpected failure </li>
</ul>
</li>
</ul>

<p>References <a class="el" href="group___overview.html#gacdb1fbfdbaf6706a613cabfe35e4b23d">XTRNGPSX_DF_MAX_LENGTH</a>, <a class="el" href="group___overview.html#ga0cd1496d0e68ec8adf6f020b4ee07639">XTRNGPSX_DF_MIN_LENGTH</a>, <a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2a519e903ee50abb8ccf5050c6bde24740">XTRNGPSX_HEALTHY</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79ace1309d483b3c71b4648cfc74ffc5944">XTRNGPSX_INVALID_DF_LENGTH</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79abea04f8cfe70d6dc5a8e7a78d8a9929a">XTRNGPSX_INVALID_MODE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a3028234bc4951452efec651d280e9a13">XTRNGPSX_INVALID_PARAM</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79aaf19eaa7b8db854d074a23c6722bc99d">XTRNGPSX_INVALID_SEED_VALUE</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a21c4b76c9247554959c5f0ff66568ac0">XTRNGPSX_INVALID_STATE</a>, <a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fa0ec15ca3bf0e6216ad396aab80cd64db">XTRNGPSX_RESEED_STATE</a>, <a class="el" href="group___overview.html#ggabf665f37f1800c3d3859681db4fb46c2a7c767c57bf2693d05df2a4aa7ed49b60">XTRNGPSX_STARTUP_TEST</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a750afc0bc2b7948b06e719628dce4ec4">XTRNGPSX_UNHEALTHY_STATE</a>, and <a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fab40d38d0bc64cb683a4ade9c3d07bd1b">XTRNGPSX_UNINITIALIZED_STATE</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat()</a>, and <a class="el" href="group___overview.html#gaa94d3f0522f2c56e9a4b6abe4193db2e">XTrngpsx_Generate()</a>.</p>

</div>
</div>
<a class="anchor" id="ga15ee0bc83b064ce7910792c014c589b1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int XTrngpsx_Uninstantiate </td>
          <td>(</td>
          <td class="paramtype">XTrngpsx_Instance *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function uninstantiates the TRNG instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>Pointer to XTrngpsx_Instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if uninstantiation was successful.</li>
<li>XTRNGPSX_INVALID_PARAM if invalid instance is passed to function</li>
</ul>
</dd></dl>
<ul>
<li>XTRNGPSX_ERROR_MEMSET_UNINSTANTIATE_ERROR if memset was not successful<ul>
<li>XST_FAILURE On unexpected failure </li>
</ul>
</li>
</ul>

<p>References <a class="el" href="group___overview.html#ga67d733d1c108e408b09b96db25076861">TRNG_OSC_EN</a>, <a class="el" href="group___overview.html#gga2d0ae14b9bbf4f302c87faaa43cb8a79a3028234bc4951452efec651d280e9a13">XTRNGPSX_INVALID_PARAM</a>, and <a class="el" href="group___overview.html#gga1a37c0faa6994f63b7c2c62ffe43562fab40d38d0bc64cb683a4ade9c3d07bd1b">XTRNGPSX_UNINITIALIZED_STATE</a>.</p>

<p>Referenced by <a class="el" href="group___overview.html#ga96822ba4d9b936cb95d8190ffd3095f0">XTrngpsx_DRBGKat()</a>, <a class="el" href="group___overview.html#ga9b57a3574f76fbaf1edac0255b95373e">XTrngpsx_HealthTest()</a>, and <a class="el" href="group___overview.html#gaecce7c23f64a684ac613d6c36ae708cb">XTrngpsx_PreOperationalSelfTests()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
